 

const exclude = [
	''
]


export function ajax(options){
	
	
	return new Promise((resolve,reject)=>{
		
		// console.log(options)
		
	
		
		options.delayed = 2000 // 延时多久执行后续操作
		
		
		if(!options.noLoading){
			uni.showLoading({
				title: options.loadingTitle || '加载中',
				mask:true
			})
			
		}
		
		
		let baseHeader = { 'content-Type':'application/x-www-form-urlencoded',
		 "Access-Control-Allow-Origin": "*"}
		let baseData = {}
		
		// baseHeader.token = "b47b6d0a-a73d-43b2-bc9a-b34beba8c721"
		// baseData.token = "b47b6d0a-a73d-43b2-bc9a-b34beba8c721"
		if(verifyLogin()){
			baseData.token = uni.getStorageSync('token')
			
			baseHeader.token = uni.getStorageSync('token')
		
		}
		
		if(options.url == '' || !options.url){
			
			uni.showToast({
				title:"url 传递错误",
				icon: 'none'
			})
			resolve(null)
			return
		}
		
		
		uni.request({
			url: options.url || '',//请求地址 url
			method:options.method || 'POST',//请求格式 method POST GET
			data:{...baseData,...options.data||{}},//请求参数 data
			header: {...baseHeader, ...options.header ||{}},
			success:(res)=>{
				
				if(res.data.code == 401){
					
					
					// if(tools.verifyLogin()){
						
					// 	uni.showToast({
					// 		title:"请登录",
					// 		icon: "none"
					// 	})
					// }
					
					
					// uni.showToast({
					// 	title:res.data.msg,
					// 	icon: "none",
					// 	mask: true
					// })
					
					setTimeout(()=>{
						uni.navigateTo({
							url:'/pages/loginTwo?msg=请登录',
							
						})
					},1000)
					
				}else if(res.data.code != 1 ){
					
					
					if(!(options.noToast==true)){
						
						uni.showToast({
							title:res.data.msg,
							icon: "none",
							mask: true
						})
					}
					
					
					
				}else if(res.data.code == 1){
					
					
					if(options.successToast){
						uni.showToast({
							title:options.successToast,
							icon: "none",
							duration: options.delayed
							
					}) 
					}else if(!(options.noToast==true)){
						uni.showToast({
							title:res.data.msg,
							icon: "none",
							duration: options.delayed
							
						}) 
					}
					
					
					if(options.follow){
					 
						setTimeout(()=>{
							
							// 绑定this 可操作页面上的this
							if(options.that){
								options.follow.bind(options.that)()
							
							}else{
								
								// 绑定this 可操作页面上的this 或者使用闭包
								
								// 不绑定就操作不了页面上的this 
								// throw new Error("follow 中没有绑定页面中的this到参数that 会导致在此刻使用this出现undefined")
								options.follow()
							}
							
													
						},options.delayed)
						
						
					}
				}
				
				
				

	
				resolve(res.data)
				
				
				
			},
			fail:(err)=>{
				reject(err)
				
				uni.showToast({
					title:"加载失败",
					icon:'none'
				})
				
				
				
			},
			complete() {
				uni.hideLoading()
			}
		})
	})
}

function verifyLogin(){
	const  token = uni.getStorageSync('token')
	
	const myInfo = uni.getStorageSync('userInfo')
	
	if(token && myInfo.token == token){
		return true
	}else{
		return false
	}
	
}

